home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-06-19 | 29.6 KB | 545 lines | [TEXT/ttxt] |
- TidBITS#117/Nisus_Features
- ==========================
-
- The 2nd part of our three-part review of Nisus.
-
- Copyright 1990-1992 Adam & Tonya Engst. Non-profit, non-commercial
- publications may reprint articles if full credit is given. Other
- publications please contact us. We do not guarantee the accuracy
- of articles. Publication, product, and company names may be
- registered trademarks of their companies. Disk subscriptions and
- back issues are available.
-
- For more information send email to info@tidbits.halcyon.com or
- ace@tidbits.halcyon.com -- CIS: 72511,306 -- AOL: Adam Engst
- TidBITS -- 9301 Avondale Rd. NE Q1096 -- Redmond, WA 98052 USA
- --------------------------------------------------------------
-
- Topics:
- Rulers and Styles - I
- Rulers and Styles - II
- Rulers and Styles - III
- Find/Replace
- Macros and Programming
- Broken Bells and Feeble Whistles
-
- [Archived as /info-mac/digest/tb/tidbits-117.hqx; 30K]
-
-
- Rulers and Styles - I
- ---------------------
- The horizontal ruler area at the top of a text window contains the
- expected formatting tools: you can set the paragraph containing
- the insertion point to be ragged-right, ragged-left, centered, or
- right-and-left justified; you can insert four kinds of tabs;
- increment or decrement line leading and paragraph leading; and, of
- course, slide the wrapping margins. There is also a ruler icon
- which, if checked, causes small ruler symbols - the Governing
- Rulers - to become visible to the left of some paragraphs in the
- text.
-
- It appears that Paragon began by hoping to do without Word-type
- named paragraph styles altogether; and the curious hierarchy of
- ways to manipulate paragraph formatting reflects the remnants of
- this hope. At the bottom of the hierarchy is a mechanism for
- physically and namelessly manipulating paragraph styles, the
- Governing ruler, rather like the ruler in the original MacWrite.
- Under this metaphor a ruler appearing in the left margin continues
- to govern every subsequent paragraph until a paragraph is
- encountered whose format information (margins, justification, tab
- placement, line leading, paragraph leading, etc.) differs in some
- way, and then a new ruler appears in the left margin next to that
- differing paragraph.
-
- You can do many things with these rulers:
-
- (i) You can alter the format of one paragraph. <more>
-
- (ii) You can select any number of paragraphs (contiguous or
- otherwise, remember) and alter their formatting. <more>
-
- (iii) You can alter the format of one paragraph and all contiguous
- paragraphs governed by the same individual ruler. <more>
-
- (iv) You can alter the format of one paragraph and all identical
- paragraphs - that is, all paragraphs anywhere in the document
- whose formatting is just like the current paragraph. This is a
- cool feature because you can essentially redefine a paragraph
- style for the whole document without ever worrying about style
- names. <more>
-
- (v) You can treat the Governing rulers that appear in the margin
- as characters, and cut and paste them as a way of altering
- paragraph formats. <more>
-
- Adam thinks that when it comes right down to using Nisus, over 90%
- of users will never even notice or care that they can do anything
- but format either the paragraph holding the insertion point or the
- selected paragraphs, although he admits to being fond of the
- ability to cut, copy, and paste ruler icons to format text. This
- may be true, though I happen to think that even such users will
- probably accidentally run across the more advanced properties of
- Governing rulers. But in any case we both agree that the
- combinations of these various actions on Governing rulers are
- extremely powerful, a fantastic implementation of the concept.
-
-
- Rulers and Styles - II
- ----------------------
- The Paragon people at some point decided that this way of working
- with formats was incomplete, and so a second level of hierarchy is
- included, Named Rulers. A ruler can be assigned a name; if this is
- done, a slightly different ruler icon appears, and the name can
- now be selected from a pop-up menu in the ruler at the top of the
- window as a way of assigning the given format to a paragraph, just
- as in Word. <more> Any changes made to the formatting of any
- paragraph governed by a Named ruler will instantly be applied to
- all paragraphs governed by a ruler with that name; this is what
- makes Named rulers so powerful and useful.
-
- (If you've been working entirely with unnamed rulers and decide
- things would be easier if you used Named rulers instead, it is
- easy to make the transition: if you hold down Command as you name
- a ruler, all identical rulers throughout the document will be
- given that name. Try THAT with Microsoft Word! I'm deadly serious
- here: the only way in Word to give a single Style name to all
- identical paragraphs in Word is to find them all, one by one, and
- apply that style. Score a big one for Nisus here.)
-
- Things can get a bit tricky in the interplay between named and
- unnamed rulers; you'll have to download the longer version of this
- review if you want details. <more>
-
-
- Rulers and Styles - III
- -----------------------
- The top level in the formatting hierarchy is User-Defined Styles.
- In Nisus, the term Style in this context does not refer to
- paragraph formatting per se. It may involve character font,
- character size, character styling, or paragraph formatting by way
- of a ruler name - or any combination of these. (You will notice
- that paragraph formatting, as we have been discussing it so far,
- has not involved character features in any way. Pasting a named
- ruler, for example, will do nothing to the font, size, or style of
- any characters in the document.) This is the level on which you
- really want to operate, because it is the most global and
- convenient. Any change made to any part of the definition of a
- User-Defined Style is instantly reflected in all text to which
- that Style is attached; and you make your changes quickly and
- easily in a dialog box. Nisus is incredibly intelligent about
- remembering why text looks the way it does; you can cancel the
- effect of a User-Defined Style upon text, just by selecting the
- text and choosing the Style from the Style menu (whereupon it
- unchecks in the menu); and when you do, characteristics of the
- text that are imposed by that Style are removed - but
- characteristics of the text that are imposed by other Styles
- applying to it, or that were imposed manually (by choosing Italic
- from the menu, for example), are not removed.
-
- The price of this power, though, is that User-Defined Styles work
- in a tricky way. The options available to the user when defining a
- Style include Named Ruler, font, size, color, and character
- styling. Now, if a User-Defined Style does not include a ruler
- name, then when you choose it from the Style menu it applies to
- the character formatting just of any selected material, or to the
- insertion point and any subsequent typing. But if it does include
- a ruler name, then, when you choose it from the Style menu, no
- matter how much text is selected, the ENTIRE paragraph containing
- the insertion point will take on the character formatting defined
- in the Style, - and the Named ruler in question will appear to the
- left of the paragraph. <more>
-
- Well, you may disagree, but I find this more than a tad confusing.
- <more> However, let me get one thing perfectly clear: despite
- these confusing behaviours, I LOVE the way Nisus handles Rulers
- and Styles, and I think they put Word completely in the shade;
- Nisus gives you a power and convenience that Word just cannot
- match. <more>
-
- A noteworthy aspect of Rulers and Styles is the way in which these
- are made transferable from one document to another. If several
- documents are open at once, the User-Defined Styles of all of them
- are available in the Style menu (those that are not in the
- frontmost document are marked with the name of the document they
- are in). If you select a User-Defined Style that is not in the
- frontmost document, it will be applied in the frontmost document,
- and it will also be transferred into that document. Thus a single
- action can change the character and paragraph formatting of a
- paragraph, and create a new Named ruler in your document, and
- define a new User-Defined Style in your document. Since you do
- this with only those Styles that you desire in your document, you
- have a method of making paragraph formatting and character styling
- match that of another document which is, I think, far better than
- that of Microsoft Word.
-
- You can also create style and formatting libraries. A document
- called "Nisus New File" in the same folder as Nisus will contain
- all the formatting information for new files, so you can create
- styles in that document and then delete all the text, leaving just
- the styles to use later on in each new document you create. Or you
- can have the styles live in an ordinary file, since, remember, any
- window (including a macro file) that you open on the screen will
- have its styles available for use in any other document. <more>
-
- Named rulers also provide a handy way of navigating your document.
- If you hold down the Shift key while selecting the name of a Named
- ruler from the pop-up menu at the top of the window, Nisus will
- find the next instance of that Named ruler for you. As you will
- doubtless assign a Named ruler (most likely by way of a Style) to
- every heading your document, for example, you can now quickly page
- through the sections of your work. (You can also find character
- styling or User-Defined Styles in Nisus; see below.)
-
- Missing is any way to arrange Named rulers or Styles into a
- hierarchy, by defining one in terms of another, as Word does. If I
- change the principal font of my main paragraphs, I probably want
- that of my subordinate paragraph types to change to match it. In
- Word you can arrange to have this happen automatically; in Nisus
- the onus is on the user to select beforehand all paragraph types
- to which a change is to be made. (However, once you do this,
- changes made to a Named ruler or Style are of course reflected
- instantly throughout the document.)
-
- A very important thing you cannot do from within a Style
- definition is to require that your paragraph be kept on the same
- page with the start of the following paragraph. There is thus no
- way, from within the Styles dialog, to ensure that a heading will
- not become isolated from the succeeding paragraph, appearing
- instead alone at the bottom of the page. (Indeed, this error
- occurs several times in the Nisus manual.) This is not to say that
- there is no way whatever to ensure that a paragraph will be kept
- with following material; but again, this is a place where Nisus's
- philosophy of what level a feature should dwell on might strike
- one as perverse. Under the Format Menu is an item, Keep On Same
- Page. I don't know why this is under the Format Menu; it does not
- in fact alter formatting; Keep On Same Page is in reality a style
- (I think of it as a pseudo-style), and what choosing it from the
- menu really does is to impose this style on your selected text. If
- you want to prevent material from being interrupted by a soft page
- break, you have to impose the Keep On Same Page pseudo-style upon
- the entire run of material yourself. What you would need to do in
- order to keep headings from being separated from their following
- paragraph, for example, is to write a macro which selects every
- heading and a couple of lines of whatever follows, and imposes the
- Keep On Same Page style onto them. In the same way, Nisus does not
- come with any automatic prevention of widows and orphans: it is
- possible that as you type, a single line from the start or end of
- a paragraph will wind up isolated on a page. To prevent widows and
- orphans in your printed document, you run a macro (included with
- Nisus): it selects the first two lines and the last two lines of
- every paragraph, and imposes the Keep On Same Page style.
-
- You have to adjust your working method to accommodate this way of
- doing things, and you may find it just too inconvenient to do so.
- It is up to you to remember to run these macros relating to widows
- and orphans just before print time; and you dare not run them any
- sooner, either, for if you impose the Keep On Same Page style onto
- a run of text, and then find you need to make alterations to that
- text, your Keep On Same Page style will be incorrectly attached in
- the document - being a style, it is attached to specific text, and
- is moved or expanded or deleted with that text. Moreover, there is
- no way to render the presence of Keep On Same Page style visible
- on the screen, so it is easy to make an error in this regard
- (though admittedly you could make such text temporarily visible
- by writing a macro to select it - but this is only a workaround,
- not a real solution). A macro is included for simply removing
- all Keep On Same Page styling, and you certainly would need to
- run this, if you have previously run the Widows and Orphans
- macro, before making any changes to your document that might
- alter the first or last lines of any paragraphs, or else your
- widows and orphans will come out wrong; but this can hardly be
- termed a solution. What if some of your paragraphs or paragraph
- styles intentionally include Keep On Same Page formatting that
- you would rather not lose (such as a small columnar table that
- needs to be kept together)? The macro will undo that styling as
- well! <more>
-
-
- Find/Replace
- ------------
- We turn now to the bottom level of Nisus, the area where the
- nitty-gritty is, the stuff that Nisus seems truly made for: the
- find-and-replace and macro/programming facilities.
-
- You set up a find or find-and-replace in a dialog window, and the
- flexibility of what you can do is astonishing. You can include any
- sort of styling in your Find text or your Replace text - font,
- size, character styling, User-Defined Styles - as part of what
- Nisus is to look for, or the change it is to make. A built-in
- global regular expression parser ("grep"), or as Paragon was asked
- by Apple to call it, PowerSearch Plus, lets you build complex
- textual patterns to find and complex ways of dealing with them
- when they are found, and, in the Find dialog window, those not
- wishing to learn and type the cryptic, but oh-so-powerful codes to
- match patterns can select expression components from a menu
- instead. (It's interesting to note that Nisus is one of a few
- programs that put menus in a window rather than further burdening
- the menu bar, something which is especially handy on large and
- multiple monitor setups. It would be nice to see more of this in
- the future.) You can find forward or backwards through a document,
- find one or all instances, limit your find to previously selected
- text. You can have your find performed on just the frontmost
- document, all open documents, or even on closed files for which
- you provide a list via the Catalog.
-
- There is no point trying to enumerate all the features of
- PowerSearch Plus, but some examples will illustrate the power of
- the results. To change all instances of underlined text to
- italicised text is trivial. To change all instances of an imported
- marked-up expression such as "<it>some text<ro>", where the <it>
- and the <ro> may or may not be capitalised, so as to have the <it>
- and <ro> removed and whatever is in between become italicised, is
- only mildly less trivial. (That's a real example in my life.) To
- find all instances of text that might be a phone number is an
- interesting challenge, but it is in fact possible to set up a
- single find that would be able to find such variations as "KI4-
- 3459", "(607)-4215151", and "301 421-5353"; a single find-and-
- replace procedure might find all phone numbers regardless of their
- format and alter them so that they conform to some set format -
- say, parentheses round the area code if there is one, space after
- the area code, hyphen between the first three and last four digits
- of the number.
-
- No doubt numerous possibilities for using all this power are
- occurring to you as you read, from free text databasing to file
- format translation - and rightly so. PowerSearch Plus (together
- with the macro capacity) is what I bought Nisus for, and it has
- done me yeoman service in this regard.
-
- There isn't much not to like about this wonderful aspect of Nisus.
- I have one suggestion, though. I often use foreign alphabets.
- Nisus's PowerSearch Plus distinguishes numeric, alphabetic,
- uppercase, lowercase, alphabetic-with-diacritical, and punctuation
- characters, but these definitions are pre-defined for the Mac's
- standard character set; the possibility that someone might be
- using a font where it is not true that a character is uppercase
- alphabetic if and only if it is ASCII 65-90, seems not to have
- occurred to Nisus's designers. What I'd like to see is some sort
- of dialog that would let the user define these categories for any
- given font. Perhaps the new Script-Sensitive finding option
- present in Nisus 3.06 indicates some coming step in this
- direction; I've no documentation on it, so I can't tell.
-
- Finding text also responds inconsistently to the Keep On Same Page
- pseudo-style (see above). If text gets into the Find dialog that
- is marked Keep On Same Page (which can happen quite easily without
- the user's knowing it if Copy is used to obtain the text to be
- sought), a style-sensitive find will not find text in the document
- unless it is marked Keep On Same Page (quite disconcerting, since
- the find will seem to be failing for no reason that the user can
- detect); but if the text in the Find dialog is not marked Keep On
- Same Page, then, even if the find is style-sensitive, text in the
- document that is marked Keep On Same Page WILL be included as a
- match. This is weird behaviour, but the root of the problem is
- really the fact that Keep On Same Page is a pseudo-style.
-
-
- Macros and Programming
- ----------------------
- The macro facility is divided into two levels, referred to as
- Macros and Programming. The difference is formal: the two levels
- involve different commands, which cannot be combined on a single
- line of a macro (though they can be combined within a single
- macro), and the Programming Dialect requires the presence of a
- special interpreter file. In addition, you can record a macro by
- asking Nisus to watch what you are doing, and then go in
- afterwards and customize the macro that Nisus has created for you.
-
- The Macro level, in a nutshell, allows you to do anything you
- could have done with menus and typing. You can enter find-and-
- replace commands in a single line rather than having to make Nisus
- fill in the Find dialog piece by piece, and a few other menu
- commands can similarly be encoded in condensed form within a
- macro; but the net effect is precisely to automate actions you
- could have taken through menus and keyboard. A macro can call
- itself or another macro; the find-and-replace syntax provides a
- means of terminating a macro, which may be in a loop or calling
- itself, if the find fails. The macro file appears in a window
- which is a version of the regular text window, with the normal
- tools at the top of the window and all menus available; this means
- you can include rulers and styles in a macro and cause them to
- appear in the document on which it operates. Writing macros is not
- at all difficult (although I find I have to have the manual in
- front of me if I'm to remember the find/replace syntax), and there
- is an excellent facility for testing them: you can tell Nisus to
- regard any selected text as a macro and to attempt to execute it
- (and you can Undo the results in one stroke, so you're not afraid
- to experiment).
-
- What the Programming dialect adds is: mathematical and string
- operations and functions; a rudimentary control structure (if,
- goto, exit); functions for obtaining information about the
- document - what is the name of the ruler governing the current
- insertion point? what is the character offset (from the start of
- the document) of the insertion point? of the current ruler? of the
- next ruler?; a storage class which is sort of a cross between an
- array and a stack; and commands for obtaining or setting the
- selection point in the document. A thing you are likely to do is
- combine the selection-point commands with the storage class. For
- example, you might do a find which results in a number of non-
- contiguous selections; you could then store the selection-points
- in the storage class; this would allow you to run through the
- selections one by one, doing some complicated (possibly
- conditional) operation on each of them.
-
- The power of all this is so obvious as to need no further
- elaboration. Yet, to the reader's possible astonishment, I should
- like to say that I think nowhere near enough power is provided.
- Nisus has a lot to live up to in this regard. On my little Apple
- ][c, with just 128K, I ran a program called Gutenberg. This
- fantastic program, by John Wagner of Scarborough, Ontario, is my
- measuring stick for all other word processing programs. It had no
- WYSIWYG bells and whistles, of course; but it revolved around a
- programmable page-layout language with which you could dictate,
- through a nesting series of macros, down to the last pixel what
- your dot-matrix printer would ultimately generate (in other words
- it was like TeX). What attracts me to Nisus is that it dwells in
- Gutenberg's philosophical world; what disappoints me is that it
- never quite lives up to its promise. That's right: I'm saying that
- Gutenberg was more powerful.
-
- The reason for this is that Gutenberg's programming language gave
- the user access to something Nisus's does not: the global
- variables of the document. There is no way to find out from within
- a Nisus macro such things as: what is the font of the text at the
- insertion point? what, numerically, is the placement of the left
- margin? what, numerically, is the position of the insertion point
- on the line? (You can figure out how many characters there are
- from the start of the line to the insertion point, but not how
- many centimetres.) Similarly, you cannot set these global
- variables, unless through a menu command - and menu commands do
- not do everything. There is absolutely no way, from within a Nisus
- macro, to set a tab or move a margin. (Of course you can impose a
- ruler which includes preset tabs and margins; but I'm talking
- about being able to respond flexibly and numerically to the actual
- situation: e.g., set the left margin to 1 inch more than its
- present value.) I cannot believe that it would be much trouble to
- add this sort of facility and give Nisus's programming language
- some truly incredible power. Remember, this is all stuff I used to
- be able to do on an Apple ][. Paragon does realize this, but has
- had other priorities, such as getting Nisus Compact and Nisus XS
- out the door. I'd like to see them focus on their programming
- language next, since it would help Nisus to further break from the
- word-processor pack.
-
- One silly feature of macros, by the way, is that for many commands
- you need to be able to enter special symbols for Option, Shift,
- Command, arrow-keys, and the like; a special font is provided to
- allow this, but there is no way to type some of the symbols (no
- way to type any of them if you've no Control-key) - you have to
- pull down a special window called ASCII which shows the symbols,
- and double-click each one as needed to get it into the macro.
- (However, things are better than they used to be. In Nisus 3.01,
- you couldn't even see the symbols in the ASCII window; you had to
- memorize their ASCII codes, and double-click the correct code
- number to cause the required symbol to appear in your macro!) The
- only other workaround is to turn on macro recording, type some
- keys with the modifiers down, and then copy the modifier symbols
- from the recorded macro. It's clumsy, but it works. I just leave
- the symbols in a comment at the top of my macro file so they're
- easy to get to.
-
-
- Broken Bells and Feeble Whistles
- --------------------------------
- We now come to the top layer of Nisus, a number of miscellaneous
- page-layout features cobbled together (a recent MacUser refers to
- it as a "Swiss-Army knife," an apt comparison). In my opinion
- these are of uneven quality and value, especially in comparison to
- the fantastic find/replace and macro facilities; but I'll describe
- them and let you be the judge.
-
- The Footnote facilities are the most disappointing. On the one
- hand, it is true, Nisus has commendably gone out of its way to
- provide much more flexibility here than many other word processors
- do. You can let any given footnote be numbered automatically or
- give it a special symbol, or no symbol at all; if it is numbered,
- you can include any sort of constant punctuation with the number,
- superscripting it or not, and the number format can differ in text
- and notes. (Thus the footnote could be marked as "(2)" in the text
- but "2." in the footnote.) You can restart automatic footnote
- numbering at any point in the document. You can have footnotes or
- endnotes; if footnotes, you can choose whether footnotes may be
- split, whether they may be separated from their main text, whether
- they appear at the bottom of the page or tight up against the main
- text, even how much of a page can maximally consist of footnote
- material.
-
- But you still wouldn't want to have to produce a proper book with
- Nisus's footnote facilities. They are awkward to use because, as
- pointed out already, you can't write or edit a footnote with the
- main text in view without messing around with manually copying the
- text and using the Show Clipboard feature. This may be a personal
- thing, but I hate not being able to see my text while writing the
- footnote. A Nisus document has no sections, so you cannot cause
- notes to appear as endnotes after each section or chapter. An
- unbelievably rudimentary omission is that Nisus does not allow you
- to define the separator line between main text and footnotes
- differently depending on whether the first note on that page
- starts a footnote or is a continuation of a note from the previous
- page (called a continuation separator); this is something that
- even Microsoft Word lets you do, and it is _required_ by standard
- typographical convention. You cannot preset the font, size, and
- character styling of footnote numbers; you have to use the
- find/replace facilities to change them after they are created, and
- if you then make a new footnote you'll have to do it again. On the
- other hand, you _must_ preset the numbering style of footnotes; if
- you create several footnotes and decide you don't like their
- numbering style, you have to change all the numbers one by one! As
- you make each footnote, Nisus attaches an unnamed ruler to each
- note; if you want to be the master of footnote formatting (or
- Style), you have to change this, and again you must do this
- yourself once more if you add a new a footnote. Unaccountably,
- Nisus insists on inserting a Tab character before each new
- footnote! When Nisus does a find, it cannot see footnotes; you
- have to find just the footnotes explicitly. When Nisus does a find
- of closed files, it cannot find text in footnotes at all! (Nor can
- other applications see text in Nisus footnotes, since they are a
- resource - whereas main text is of type TEXT.) And you cannot
- index text from your footnotes, which makes indexing largely
- useless to me, since in my academic writing the technical part of
- the argument, and all the references, are in the footnotes.
-
- The upshot is that the problems with footnoting alone are enough
- to keep me from being able to use Nisus for routine production of
- scholarly work, even though I'd like very much to do so. What
- possessed Paragon to construct their system this way is beyond me
- to imagine.
-
- There are no table-making facilities whatever. Zero. Zilch. This
- is an unbelievable state of affairs. Tables are not a luxury. I
- use them very often, not merely to display data but for such
- mundane things as making a syllabus, writing a resume, and making
- a question and answer appear side by side. Nisus has nothing, not
- even side-by-side paragraphs; all sorts of effects involving
- paragraph placement that in Word are almost trivial to attain are
- more or less impossible in Nisus. The manual mentions that you
- could, if you wanted, make a table in Microsoft Word and then
- import it to Nisus as a graphic. Hey, I think I'll make a table in
- Microsoft Word and stay right in Microsoft Word. Get real,
- Paragon. And remember, I'm not asking for anything here that I
- couldn't do with 128K using Gutenberg on an Apple ][c.
- Interestingly enough, Microsoft was shocked at the response they
- got to the addition of tables in Word 4.0. Apparently they had
- just though tables might be a nice way to format columns of
- numbers and since Word provided rudimentary calculation features,
- they threw in the tables, which were an immediate hit. Word's
- tables still have some serious problems (such as not being able to
- split a row over a page break), and Paragon could win over many
- Word users with a killer table feature. Hint hint.
-
- Since there is no such thing as a section in Nisus, you cannot
- vary the columnization of your document; either it must all be one
- column, or it must all be two, and so on - and your columns must
- all be of equal width.
-
-
- ..
-
- This text is wrapped as a setext. For more information send email
- with the single word "setext" (no quotes) in the Subject: line to
- <fileserver@tidbits.halcyon.com>. A file will be returned promptly.
-
-
-
-